Python 列表索引超出范围

您所在的位置:网站首页 python 数组 范围 Python 列表索引超出范围

Python 列表索引超出范围

#Python 列表索引超出范围| 来源: 网络整理| 查看: 265

原文: List Index Out of Range – Python Error Message Solved

在本文中,你将看到一些在 Python 中导致列表索引超出范围(list index out of range)错误的原因。

除了知道为什么会发生此错误之外,你还将学习一些避免它的方法。

让我们开始吧!

如何在 Python 中创建列表

要在 Python 中创建列表对象,你需要:

给列表起个名字使用赋值运算符 =在方括号 [] 内包含 0 个或多个列表项,每个列表项都需要用逗号分隔

例如,要创建一个 names 列表,你可以执行以下操作:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

上面的代码创建了一个名为 names 的列表,它有四个值:Kelly, Nelly, Jimmy, Lenny。

如何在 Python 中检查列表的长度

要检查 Python 中列表的长度,请使用 Python 的内置 len() 方法。

len() 将返回一个整数,它是存储在列表中的项目数。

names = ["Kelly", "Nelly", "Jimmy", "Lenny"] #创建一个名为 name_length 的变量来存储列表的长度 name_length = len(names) #将变量的值打印到控制台 print(name_length) #输出 #4

列表中存储了四个项目,因此列表的长度将为 4。

如何在 Python 中访问单个列表项

列表中的每个项目都有自己的索引号。

Python 和大多数现代编程语言中的索引从 0 开始。

这意味着列表中的第一项的索引为 0,第二项的索引为 1,依此类推。

你可以使用索引号来访问单个项目。

要使用其索引号访问列表中的项目,请首先写入列表的名称。然后,在方括号内放入与项目的索引号对应的整数。

以前面的示例为例,你可以通过以下方式使用其索引号访问列表中的每个项目:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"] names[0] # Kelly names[1] # Nelly names[2] # Jimmy names[3] # Lenny

你还可以使用负索引来访问 Python 列表中的项目。

要访问最后一项,请使用索引值 -1。要访问倒数第二个项目,请使用索引值 -2。

以下是使用负索引访问列表中每个项目的方法:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"] names[-4] # Kelly names[-3]# Nelly names[-2] # Jimmy names[-1] # Lenny 为什么 Python 中会出现 Indexerror: list index out of range 错误使用超出列表范围的索引号

当你尝试使用超出列表索引范围且不存在的值访问项目时,你将收到 Indexerror: list index out of range 错误。

当你尝试访问列表的最后一项时,或者当你使用负索引访问第一项时,这很常见。

让我们回到我们目前使用的列表。

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

假设我想访问最后一项 “Lenny”,并尝试使用以下代码进行访问:

print(names[4]) #output #Traceback (most recent call last): # File "/Users/dionysialemonaki/python_articles/demo.py", line 3, in # print(names[4]) #IndexError: list index out of range

通常,列表的索引范围是 0 到 n-1,其中 n 是列表中值的总数。

上面列表的总值为 4,索引范围为 0 到 3。

现在,让我们尝试使用负索引访问一个项目。

假设我想通过使用负索引来访问列表中的第一项 “Kelly”。

names = ["Kelly", "Nelly", "Jimmy", "Lenny"] print(names[-5]) #output #Traceback (most recent call last): # File "/Users/dionysialemonaki/python_articles/demo.py", line 3, in # print(names[-5]) #IndexError: list index out of range

使用负索引时,列表的索引范围是 -1 到 -n,其中 -n 是列表中包含的项目总数。

列表中的项目总数为 4,索引范围为 -1 到 -4。

在 Python for 循环中使用 range() 函数中的错误值

在遍历列表并尝试访问不存在的项目时,你将收到 Indexerror: list index out of range 错误。

发生这种情况的一个常见情况是在 Python 的 range() 函数中使用了错误的整数。

range() 函数通常采用一个整数,表示计数将停止的位置。

例如,range(5) 表示计数将从 0 开始,到 4 结束。

因此,默认情况下,计数从位置 0 开始,每次递增 1,并且该数字取决于(但不包括)计数将停止的位置。

让我们看下面的例子:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"] for name in range(5): print(names[name]) #output #Kelly #Nelly #Jimmy #Lenny #Traceback (most recent call last): # File "/Users/dionysialemonaki/python_articles/demo.py", line 7, in # print(names[name]) #IndexError: list index out of range

这里,列表 names 有四个值。

我想遍历列表并打印出每个值。

当我使用 range(5) 时,我告诉 Python 解释器打印位置 0 到 4 的值。

但是,位置 4 中没有项目。

你可以通过首先打印出位置的编号,然后打印出该位置的值来看到这一点。

#0 #Kelly #1 #Nelly #2 #Jimmy #3 #Lenny #4 #Traceback (most recent call last): # File "/Users/dionysialemonaki/python_articles/demo.py", line 8, in # print(names[name]) #IndexError: list index out of range

你会看到位置 0 是 “Kelly”,位置 1 是 “Nelly”,位置 2 是 “Jimmy”,位置 3 是 “Lenny”。

当涉及到位置 4 时,它由 range(5) 指定,表示位置 0 到 4,没有任何东西可以打印出来,因此解释器会抛出错误。

解决此问题的一种方法是减小 range() 中的整数:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"] for name in range(4): print(name) print(names[name]) #output #0 #Kelly #1 #Nelly #2 #Jimmy #3 #Lenny

使用 for 循环时解决此问题的另一种方法是将列表的长度作为参数传递给 range() 函数。你可以使用 Python 内置函数 len() 来执行此操作,如前面部分所示:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"] for name in range(len(names)): print(names[name]) #output #Kelly #Nelly #Jimmy #Lenny

将 len() 作为参数传递给 range() 时,请确保你没有犯以下错误:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"] for name in range(len(names) + 1): print(names[name])

运行代码后,你将再次收到 IndexError: list index out of range 错误:

#Kelly #Nelly #Jimmy #Lenny #Traceback (most recent call last): # File "/Users/dionysialemonaki/python_articles/demo.py", line 4, in # print(names[name]) #IndexError: list index out of range 总结

希望本文能让你深入了解 IndexError: list index out of range 错误发生的原因以及避免它的一些方法。

如果你想了解有关 Python 的更多信息,请查看 freeCodeCamp 的 Python 认证。你将通过一种对初学者友好的互动方式学习,你还将构建五个项目以巩固所学的知识。

感谢你阅读本文,祝你编程愉快!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3